drone jsonnet 各種怪招

睡睡念

本文章內容包含許多寫drone jsonnet會碰到的寫法。

正文

  1. 在pipeline下comand的時候,有時會碰到多行指令湊在一起的情況,
    在drone.yaml是直接這樣寫
    ⏱ Drone/109-fig.1.jpg
    但如果要用jsonnet的話,要用\n換行,
    ⏱ Drone/109-fig.2.jpg
    轉換後就會變成下圖
    109-fig.3.jpg

  2. 在執行command的時候,因為要先用" 將指令包起來,如果裏面還要有" 的話,必須在前面加上 \
    109-fig.4.jpg
    執行drone jsonnet --stream --format
    109-fig.5.jpg
    這是因爲 linux shell裏面,單引號跟雙引號的差別,詳細可看shell script 雙引號與單引號

  3. 如果碰到很長的一串指令,例如if else之類的,改使用 @'' 將程式包起來。

@'
if [ -z $${TAG_FROM} ]

then

echo "錯誤:無來源TAG。";

exit 1

fi'
  1. 如果字串過長,想要換行的話, 可在雙引號內 使用 兩個\
    109-fig.6.jpg
  2. 用curl時,有些參數要用" ,所以在單引號使用 " " 固定參數,要先用 @ '' 包起來
  @'OAUTH2_TOKEN=$(curl -XGET $${TOTP_AUTH_URL} \\
       -H "accept: application/json" \\
       -H "TOTP-PIN-CODE: $${pin}" \\
       -H "TOTP-USER: $${user}")', 

ref.